package cn.haut.online_read.utils;

import lombok.extern.slf4j.Slf4j;
import org.assertj.core.util.Arrays;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author xing
 * @date 2021-04-21 14:35
 */
@Slf4j
public class toMapList {
    // Possible heap pollution from parameterized vararg type

    /**
     * lists 参数的数量，应该等于 names 列表中的数量
     *
     * @param names
     * @param lists
     * @return
     */
    @SafeVarargs
    public static List<Map<String, Object>> get(List<String> names, List... lists) {
        List<Map<String, Object>> list = new ArrayList<>();
        for (int i = 0; i < lists[0].size(); i++) {
            Map<String, Object> map = new HashMap<>();
            for (int j = 0; j < names.size(); j++) {
                map.put(names.get(j),lists[j].get(i));
            }
            list.add(map);
        }
        return list;
    }


//    /**
//     * 把其他类型的 List 转为 Object 的列表
//     *
//     * @param list
//     * @param <T>
//     * @return
//     */
//    public static <T> List<Object> toObjectList(List<T> list) {
//        return Arrays.asList(list.toArray());
//    }
//
//    /**
//     * 把其他多个类型的 list, 转为 object 类型的 List 的 数组
//     *
//     * @param lists
//     * @return
//     */
//    public static List<Object>[] toObjectLists(List... lists) {
//        List<Object>[] objectList = new ArrayList[lists.length];
//        for (int i = 0; i < lists.length; i++) {
//            objectList[i] = Arrays.asList(lists[i].toArray());
//        }
//        return objectList;
//    }
}
